<?php
/**
 * スターティングメンバー設定とＨＴＴＰリクエストの紐付けモジュール
 */
require_once 'Request/Request.php';
require_once APPLICATION_PATH . '/models/Players/xml/Controller.php';

/**
 * スターティングメンバー設定とＨＴＴＰリクエストの紐付けクラス
 * @author hariushi
 * @link https://www.evernote.com/view/3970cb1e-43ce-4982-acb0-21cbd18ca590?locale=ja#b=90ccea2f-37a9-463f-89cf-099ea98d1d1f&n=3970cb1e-43ce-4982-acb0-21cbd18ca590
 *
 */
class Components_StartingMember_HttpRequestRegist
{
	const PREFIX_KEY_POSITION = 'POS';
	const PREFIX_KEY_GAKUNEN = 'P';
	protected $_objRequest;
	protected $_objPlayerDataset;

	/**
	 * コンストラクタ
	 */
	public function __construct()
	{
		$this->_objRequest = new Lib_Request();
		$this->_objPlayerDataset = new Models_Players_Xml_Controller();
	}

	 /**
	  * ポジションＩＤを取得する
	  * @param $index 行番頭
	  */
	public function getPositionId($index)
	{
		if ( $index == 0 ) {
			return 'GK';
		}

		$HttpRequest = $this->_objRequest->get(self::PREFIX_KEY_POSITION.$index);
		return $HttpRequest;
	}

	/**
	 * 学年KEYを取得する
	 * @param $index 行番号
	 * @see 学年KEYは、ＰｘＵｘ[P0U7]形式で返却
	 */
	public function getGakunenKey($index)
	{
		$HttpRequest = $this->_objRequest->get(self::PREFIX_KEY_GAKUNEN.$index);
		return $HttpRequest;
	}

	/**
	 * 学年ＩＤを取得する
	 * @param $index 行番号
	 * @see 学年ＩＤはＵｘ[U7]形式で返却
	 */
	public function getGakunenId($index)
	{
		$sGakunenKey = $this->getGakunenKey($index);
		$aryDivide = explode('U', $sGakunenKey);
		if ( count($aryDivide) != 2 ) {
			return '';
		}
		$sGakunenId = 'U' . $aryDivide[1];
		return $sGakunenId;
	}

	/**
	 * 選手ＩＤを取得する
	 * @param $index 行番号
	 */
	public function getPlayerId($index)
	{
		$sGakunenKey = $this->getGakunenKey($index);
		$HttpRequest = $this->_objRequest->get($sGakunenKey);
		return $HttpRequest;
	}

	/**
	 * 選手ＩＤの重複があればＴＲＵＥを返す
	 */
	public function DuplicatePlayerIdExist()
	{
		$PlayerIdList = array();
		$index = 0;
		while ($index < 11) {
			$PlayerId = $this->getPlayerId($index);
			if ( $PlayerId != '' ) {
				$PlayerIdList[] = $PlayerId;
			}
			$index ++;
		}
		sort($PlayerIdList);
		$CompId = '';
		foreach($PlayerIdList as $Id){
			if ($CompId == $Id) {
				return TRUE;
			}
			$CompId = $Id;
		}
		return FALSE;
	}

	/**
	 * 選手氏名を取得する
	 * @param $index 行番号
	 */
	public function getPlayerName($index)
	{
		$sPlayerId = $this->getPlayerId($index);
		$sPlayerName = $this->_objPlayerDataset->getName($sPlayerId);
		return $sPlayerName;
	}
}